package com.jlwl.houseservice.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jlwl.houseservice.entity.ServiceRequest;
import com.jlwl.houseservice.vo.ServiceRequestCreateVO;
import com.jlwl.houseservice.vo.ServiceRequestQueryVO;
import com.jlwl.houseservice.vo.ServiceRequestReplyVO;

/**
 * 服务需求Service接口
 */
public interface ServiceRequestService extends IService<ServiceRequest> {

    /**
     * 创建服务需求
     * @param createVO 创建参数
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean createServiceRequest(ServiceRequestCreateVO createVO, Integer userId);

    /**
     * 分页查询用户服务需求列表
     * @param queryVO 查询条件
     * @param userId 用户ID
     * @return 分页结果
     */
    Page<ServiceRequest> pageUserList(ServiceRequestQueryVO queryVO, Integer userId);

    /**
     * 获取服务需求详情
     * @param id 服务需求ID
     * @param userId 用户ID
     * @return 服务需求详情
     */
    ServiceRequest getUserServiceRequestDetail(Integer id, Integer userId);

    /**
     * 管理员分页查询服务需求列表
     * @param queryVO 查询条件
     * @return 分页结果
     */
    Page<ServiceRequest> pageAdminList(ServiceRequestQueryVO queryVO);

    /**
     * 管理员获取服务需求详情
     * @param id 服务需求ID
     * @return 服务需求详情
     */
    ServiceRequest getAdminServiceRequestDetail(Integer id);

    /**
     * 管理员回复服务需求
     * @param id 服务需求ID
     * @param replyVO 回复参数
     * @return 是否成功
     */
    boolean replyServiceRequest(Integer id, ServiceRequestReplyVO replyVO);

    /**
     * 管理员更新服务需求状态
     * @param id 服务需求ID
     * @param status 状态
     * @return 是否成功
     */
    boolean updateServiceRequestStatus(Integer id, String status);
} 